package com.taotao.cart.mapper;

import com.taotao.cart.domain.PmsCartItems;
import com.taotao.cart.domain.response.CartResponse;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.ArrayList;
import java.util.List;

@Mapper
public interface CartItemMapper {

    /**
     * 获取当前登录用户购物车
     * @param userId
     * @return
     */
    List<CartResponse> selectUserCartList(@Param("userId") Long userId);

    /**
     * 为当前登录用户创建购物车
     * @param userId
     */
    void insertPmsCart(@Param("userId") Long userId);

    /**
     * 根据用户id查询购物车id
     * @param userId
     * @return
     */
    Long selectCartByUserId(Long userId);

    /**
     * 根据skuId cartId 查询购物车明细
     * @param skuId
     * @param cartId
     * @return
     */
    PmsCartItems selectCartItemsBySkuIdCartIdAndQuantity(@Param("skuId") Long skuId, @Param("cartId") Long cartId);

    /**
     * 批量添加购物车明细
     * @param addCartItemsList
     */
    void insertInBulkCartItems(@Param("addCartItemsList") ArrayList<PmsCartItems> addCartItemsList);

    /**
     * 批量更新购物车明细数量
     * @param updateCartItemsList
     */
    void updateInBulkCartItems(@Param("updateCartItemsList") ArrayList<PmsCartItems> updateCartItemsList);

    void deleteCart(@Param("skuIds") List<Long> skuIds,@Param("cartId") Long cartId);


    List<CartResponse> selectCartOrderInfoBySkuId(List<Long> skuId, @Param("userId") Integer userId);
}
